package models

// IdsRequest 定义一个用于接收 ID 数组的结构体
type IdsRequest struct {
	Ids []uint64 `json:"ids"`
}

// PaginationParams 用于分页的结构体
type PaginationParams struct {
	PageNum  int `form:"pageNum" binding:"required"`
	PageSize int `form:"pageSize" binding:"required"`
}

// DataListRes 返回列表数据结构体
type DataListRes[T interface{}] struct {
	Total int `json:"total"`
	Page  int `json:"page"`
	Size  int `json:"size"`
	List  []T `json:"list"`
}

// OptionsData 组件选项数据
type OptionsData struct {
	Label string `json:"label"`
	Value string `json:"value"`
}

//*********** 字段状态 ***********

// SysStatus 字段状态
type SysStatus struct {
	Status int64 `gorm:"column:status" form:"status,omitempty"`
}

type IdsArr struct {
	ID int64 `gorm:"column:id;primaryKey;autoIncrement"`
}

//*********** 枚举 ***********

// CollectStatus 定义收藏状态枚举
type CollectStatus string

const (
	CollectStatusSuccess CollectStatus = "SUCCESS" //收藏成功
	CollectStatusError   CollectStatus = "ERROR"   // 收藏失败
	CollectStatusAlready CollectStatus = "ALREADY" // 已收藏
	CollectStatusCancel  CollectStatus = "CANCEL"  // 已取消收藏
)

type CollectStatusRes struct {
	Status CollectStatus `json:"status"`
}

// UserLikeResStatus 定义返回用户点赞状态枚举
type UserLikeResStatus string

const (
	UserLikeResStatusSuccess      UserLikeResStatus = "SUCCESS"        //点赞成功
	UserLikeResStatusError        UserLikeResStatus = "ERROR"          // 点赞失败
	UserLikeResStatusAlready      UserLikeResStatus = "ALREADY"        // 已点赞
	UserLikeResStatusCancel       UserLikeResStatus = "CANCEL"         // 已取消点赞
	UserLikeResStatusNoTargetType UserLikeResStatus = "NO_TARGET_TYPE" // 点赞类型不匹配

)

type UserLikeResStatusRes struct {
	Status UserLikeResStatus `json:"status"`
}
